import UIKit

@available(iOS 7.0, *)
extension QKC where AA :NSTextTab {
		// Defines the alignment of tab column contents. NSTextAlignmentNatural and NSTextAlignmentJustified are resolved either NSTextAlignmentLeft or NSTextAlignmentRight based on the user's preferred language.
    open func alignment_qk_g() -> QKC<AA,YY,ZZ, NSTextAlignment >{
		 self +^ self.value.alignment
	}

		// Location of the tab stop inside the line fragment rect coordinate system
    open func location_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.location
	}

		// Optional configuration attributes
    open func options_qk_g() -> QKC<AA,YY,ZZ, [NSTextTab.OptionKey : Any] >{
		 self +^ self.value.options
	}

}

@available(iOS 6.0, *)
extension QKC where AA :NSParagraphStyle {
		// "Leading": distance between the bottom of one line fragment and top of next (applied between lines in the same container). This value is included in the line fragment heights in layout manager.
    open func lineSpacing_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.lineSpacing
	}

		// Distance between the bottom of this paragraph and top of next (or the beginning of its paragraphSpacingBefore, if any).
    open func paragraphSpacing_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.paragraphSpacing
	}

    open func alignment_qk_g() -> QKC<AA,YY,ZZ, NSTextAlignment >{
		 self +^ self.value.alignment
	}

	// The following values are relative to the appropriate margin (depending on the paragraph direction)
		// Distance from margin to front edge of paragraph
    open func headIndent_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.headIndent
	}

		// Distance from margin to back edge of paragraph; if negative or 0, from other margin
    open func tailIndent_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.tailIndent
	}

		// Distance from margin to edge appropriate for text direction
    open func firstLineHeadIndent_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.firstLineHeadIndent
	}

		// Line height is the distance from bottom of descenders to top of ascenders; basically the line fragment height. Does not include lineSpacing (which is added after this computation).
    open func minimumLineHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.minimumLineHeight
	}

		// 0 implies no maximum.
    open func maximumLineHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.maximumLineHeight
	}

    open func lineBreakMode_qk_g() -> QKC<AA,YY,ZZ, NSLineBreakMode >{
		 self +^ self.value.lineBreakMode
	}

    open func baseWritingDirection_qk_g() -> QKC<AA,YY,ZZ, NSWritingDirection >{
		 self +^ self.value.baseWritingDirection
	}

		// Natural line height is multiplied by this factor (if positive) before being constrained by minimum and maximum line height.
    open func lineHeightMultiple_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.lineHeightMultiple
	}

		// Distance between the bottom of the previous paragraph (or the end of its paragraphSpacing, if any) and the top of this paragraph.
    open func paragraphSpacingBefore_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.paragraphSpacingBefore
	}

	// Specifies the threshold for hyphenation.  Valid values lie between 0.0 and 1.0 inclusive.  Hyphenation will be attempted when the ratio of the text width as broken without hyphenation to the width of the line fragment is less than the hyphenation factor.  When this takes on its default value of 0.0, the layout manager's hyphenation factor is used instead.  When both are 0.0, hyphenation is disabled.
    open func hyphenationFactor_qk_g() -> QKC<AA,YY,ZZ, Float >{
		 self +^ self.value.hyphenationFactor
	}

		// An array of NSTextTabs. Contents should be ordered by location. The default value is an array of 12 left-aligned tabs at 28pt interval
    @available(iOS 7.0, *)
    open func tabStops_qk_g() -> QKC<AA,YY,ZZ, [NSTextTab] >{
		 self +^ self.value.tabStops
	}

		// The default tab interval used for locations beyond the last element in tabStops
    @available(iOS 7.0, *)
    open func defaultTabInterval_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.defaultTabInterval
	}

		// Tightens inter-character spacing in attempt to fit lines wider than the available space if the line break mode is one of the truncation modes before starting to truncate. NO by default. The maximum amount of tightening performed is determined by the system based on contexts such as font, line width, etc.
    @available(iOS 9.0, *)
    open func allowsDefaultTighteningForTruncation_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.allowsDefaultTighteningForTruncation
	}

}

@available(iOS 6.0, *)
extension QKC where AA :NSMutableParagraphStyle {
    open func lineSpacing_qk_s(_ lineSpacing:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: lineSpacing).then_QK { $0.value.lineSpacing = lineSpacing }
	}
    open func lineSpacing_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.lineSpacing
	}

    open func paragraphSpacing_qk_s(_ paragraphSpacing:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: paragraphSpacing).then_QK { $0.value.paragraphSpacing = paragraphSpacing }
	}
    open func paragraphSpacing_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.paragraphSpacing
	}

    open func alignment_qk_s(_ alignment:  NSTextAlignment) -> QKC<AA,YY,ZZ, NSTextAlignment>{
		return link(next: alignment).then_QK { $0.value.alignment = alignment }
	}
    open func alignment_qk_g() -> QKC<AA,YY,ZZ, NSTextAlignment>{
		 self +^ self.value.alignment
	}

    open func firstLineHeadIndent_qk_s(_ firstLineHeadIndent:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: firstLineHeadIndent).then_QK { $0.value.firstLineHeadIndent = firstLineHeadIndent }
	}
    open func firstLineHeadIndent_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.firstLineHeadIndent
	}

    open func headIndent_qk_s(_ headIndent:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: headIndent).then_QK { $0.value.headIndent = headIndent }
	}
    open func headIndent_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.headIndent
	}

    open func tailIndent_qk_s(_ tailIndent:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: tailIndent).then_QK { $0.value.tailIndent = tailIndent }
	}
    open func tailIndent_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.tailIndent
	}

    open func lineBreakMode_qk_s(_ lineBreakMode:  NSLineBreakMode) -> QKC<AA,YY,ZZ, NSLineBreakMode>{
		return link(next: lineBreakMode).then_QK { $0.value.lineBreakMode = lineBreakMode }
	}
    open func lineBreakMode_qk_g() -> QKC<AA,YY,ZZ, NSLineBreakMode>{
		 self +^ self.value.lineBreakMode
	}

    open func minimumLineHeight_qk_s(_ minimumLineHeight:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: minimumLineHeight).then_QK { $0.value.minimumLineHeight = minimumLineHeight }
	}
    open func minimumLineHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.minimumLineHeight
	}

    open func maximumLineHeight_qk_s(_ maximumLineHeight:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: maximumLineHeight).then_QK { $0.value.maximumLineHeight = maximumLineHeight }
	}
    open func maximumLineHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.maximumLineHeight
	}

    open func baseWritingDirection_qk_s(_ baseWritingDirection:  NSWritingDirection) -> QKC<AA,YY,ZZ, NSWritingDirection>{
		return link(next: baseWritingDirection).then_QK { $0.value.baseWritingDirection = baseWritingDirection }
	}
    open func baseWritingDirection_qk_g() -> QKC<AA,YY,ZZ, NSWritingDirection>{
		 self +^ self.value.baseWritingDirection
	}

    open func lineHeightMultiple_qk_s(_ lineHeightMultiple:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: lineHeightMultiple).then_QK { $0.value.lineHeightMultiple = lineHeightMultiple }
	}
    open func lineHeightMultiple_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.lineHeightMultiple
	}

    open func paragraphSpacingBefore_qk_s(_ paragraphSpacingBefore:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: paragraphSpacingBefore).then_QK { $0.value.paragraphSpacingBefore = paragraphSpacingBefore }
	}
    open func paragraphSpacingBefore_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.paragraphSpacingBefore
	}

    open func hyphenationFactor_qk_s(_ hyphenationFactor:  Float) -> QKC<AA,YY,ZZ, Float>{
		return link(next: hyphenationFactor).then_QK { $0.value.hyphenationFactor = hyphenationFactor }
	}
    open func hyphenationFactor_qk_g() -> QKC<AA,YY,ZZ, Float>{
		 self +^ self.value.hyphenationFactor
	}

    @available(iOS 7.0, *)
    open func tabStops_qk_s(_ tabStops:  [NSTextTab]) -> QKC<AA,YY,ZZ, [NSTextTab]>{
		return link(next: tabStops).then_QK { $0.value.tabStops = tabStops }
	}
    @available(iOS 7.0, *)
    open func tabStops_qk_g() -> QKC<AA,YY,ZZ, [NSTextTab]>{
		 self +^ self.value.tabStops
	}

    @available(iOS 7.0, *)
    open func defaultTabInterval_qk_s(_ defaultTabInterval:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: defaultTabInterval).then_QK { $0.value.defaultTabInterval = defaultTabInterval }
	}
    @available(iOS 7.0, *)
    open func defaultTabInterval_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.defaultTabInterval
	}

    @available(iOS 9.0, *)
    open func allowsDefaultTighteningForTruncation_qk_s(_ allowsDefaultTighteningForTruncation:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: allowsDefaultTighteningForTruncation).then_QK { $0.value.allowsDefaultTighteningForTruncation = allowsDefaultTighteningForTruncation }
	}
    @available(iOS 9.0, *)
    open func allowsDefaultTighteningForTruncation_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.allowsDefaultTighteningForTruncation
	}

    @available(iOS 9.0, *)
    open func addTabStop_qk_f(_ anObject: NSTextTab) -> QKC<AA,YY,ZZ, NSTextTab>{
		 self +^ self.value.addTabStop(anObject) +^ anObject
	}

    @available(iOS 9.0, *)
    open func removeTabStop_qk_f(_ anObject: NSTextTab) -> QKC<AA,YY,ZZ, NSTextTab>{
		 self +^ self.value.removeTabStop(anObject) +^ anObject
	}

    @available(iOS 9.0, *)
    open func setParagraphStyle_qk_f(_ obj: NSParagraphStyle) -> QKC<AA,YY,ZZ, NSParagraphStyle>{
		 self +^ self.value.setParagraphStyle(obj) +^ obj
	}

}

